/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.gobygang.client;

import com.gobygang.shared.ChitInfo;
import com.gobygang.shared.ContactInfo;
import com.gobygang.shared.LoginInfo;
import com.gobygang.shared.RouteInfo;
import com.gobygang.shared.TaxiGangInfo;
import com.gobygang.shared.TaxiGangInfo.LeaveResult;
import com.gobygang.shared.TaxiGanguserInfo;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;


/**
 *
 * @author Student
 */
@RemoteServiceRelativePath("taxigang")
public interface GobygangService extends RemoteService {

	public TaxiGanguserInfo getTaxiGangUser(LoginInfo loginInfo) ;
	public TaxiGangInfo[] getTaxiGangs(TaxiGangInfo taxiganginfo) ;
	public TaxiGangInfo[] getMyTaxiGangs(LoginInfo loginInfo) ;
	public TaxiGangInfo createTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo,ChitInfo info) ;
	public void joinTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo,ChitInfo info) ;
	public LeaveResult leaveTaxiGang(TaxiGangInfo taxiganginfo, LoginInfo loginInfo) ;
	public void award(TaxiGangInfo taxiganginfo, LoginInfo loginInfo) ;
	public void deleteTaxiGang(TaxiGangInfo taxiganginfo) ;
	public void addMessage(TaxiGangInfo taxiganginfo, LoginInfo loginInfo, String message) ;

	public void createWishRoute(TaxiGangInfo taxiganginfo, LoginInfo loginInfo);
	public void cancelWishRoute(String wishRouteId) ;

	
	public void deleteAllTaxiGangs() ;
	public void deleteAllTaxiGangUsers() ;

	public void logInfo(String infoMessage);

	TaxiGangInfo getInvitation(String invitation);
	RouteInfo getPartner(String partner);
	RouteInfo getRoute(String ref);
	void createPartner(RouteInfo partnerInfo);
	void sendContactInfo(ContactInfo info);
	void runCron(String cron);

}
